
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title>YUI Library Examples: Profiler: Object Profiling Example</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >

<style>
    /*Supplemental CSS for the YUI distribution*/
    #custom-doc { width: 95%; min-width: 950px; }
    #pagetitle {background-image: url(../../assets/bg_hd.gif);}
/*    #pagetitle h1 {background-image: url(../../assets/title_h_bg.gif);}*/
</style>

<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">

<!--there is no custom header content for this example-->

<link type="text/css" rel="stylesheet" href="../../build/cssfonts/fonts-min.css" />
<script type="text/javascript" src="../../build/yui/yui-debug.js"></script>

</head>
<body id="yahoo-com" class="yui3-skin-sam  yui-skin-sam">
<div id="custom-doc" class="yui-t2">
<div id="hd">
	<div id="ygunav">
		<p>
            <em>
                <a href="http://developer.yahoo.com/yui/3/">YUI 3.x Home</a> <i> - </i>	
            </em>
		</p>
		<form action="http://search.yahoo.com/search" id="sitesearchform">
            <input name="vs" type="hidden" value="developer.yahoo.com">
            <input name="vs" type="hidden" value="yuiblog.com">
		    <div id="sitesearch">
		    	<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
			    <input type="text" id="searchinput" name="p">
			    <input type="submit" value="Search" id="searchsubmit" class="ygbt">
		    </div>
		</form>
    </div>
	<div id="ygma"><a href="../../"><img src="../../assets/logo.gif"  border="0" width="200" height="93"></a></div>
	<div id="pagetitle"><h1>YUI Library Examples: Profiler: Object Profiling Example</h1></div>
</div>
<div id="bd">


	<div id="yui-main">
		<div class="yui-b">
		  <div class="yui-ge">
			  <div class="yui-u first example" id="main">

	<h2>Profiler: Object Profiling Example</h2>

	<div id="example" class="promo">
	<div class="example-intro">
	<p>This example shows using the Profiler on all methods in an object. It uses the <code>Y.DOM</code> object
as the object to be profiled.</p>	</div>	

	<div class="module example-container ">
			<div id="example-canvas" class="bd">

		
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
	
	<div class="bar">div class="bar"</div>
<div class="bar-baz">div class="bar-baz"</div>
<div class="bar ">div class="bar "</div>
<div class=" bar ">div class=" bar "</div>
<div class="bar baz">div class=" bar baz"</div>
<div class="bar2 baz">div class=" bar2 baz"</div>
<div class="foo">div class="foo"</div>
<div class="foo" id="bar">div class="foo" id="bar"</div>
<div class="foo bar baz">div class="foo bar baz"</div>
<p class="bar">p class="bar"</p>
<button id="demo-run">run</button>

<script type="text/javascript">
YUI({filter:"debug", logInclude: {profiler:true, example:true}}).use("node", "profiler",function (Y) {

    Y.Node.get('#demo-run').on('click', function(){
        Y.Profiler.registerObject("Y.Node", Y.Node);
        Y.Profiler.registerObject("Y.DOM", Y.DOM);
        
        var results = Y.Node.all('.bar');
        results.addClass("newclass");
        
        var report = Y.Profiler.getFullReport(function(data){
            return data.calls > 0;
        });
        
        Y.Profiler.unregisterObject("Y.Node");    
        Y.Profiler.unregisterObject("Y.DOM");    
        
        //output results
        var msg = "";
        for (var func in report){
            msg += (func + "(): Called " + report[func].calls + " times. Avg: " + 
                report[func].avg + ", Min: " + report[func].min + ", Max: " + report[func].max) + "\n";
        }
        alert(msg);
    });
});
</script>	
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
	
		
		</div>
	</div>			
	</div>
		
	<h2 class="first">Object Profiling Example</h2>
<p>To illustrate using the Profiler on objects, the <code>Y.DOM</code> and <code>Y.Node</code> objects are registered for profiling. This means
that all of the methods on these objects are being profiled. To
illustrate their use, a number of demo elements are added to the markup:</p>
<div id="syntax-a6695db0b5f646eb4b8d06600b52cb7e" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar-baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar-baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar &quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar &quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar &quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar &quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li2"><div class="de2"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar2 baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar2 baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo bar baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo bar baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li><li class="li2"><div class="de2"><span class="sy0">&lt;</span>p <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&gt;</span>p <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&lt;/</span>p<span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;</span>button id<span class="sy0">=</span><span class="st0">&quot;demo-run&quot;</span><span class="sy0">&gt;</span>run<span class="sy0">&lt;/</span>button<span class="sy0">&gt;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar-baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar-baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar &quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar &quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar &quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar &quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar2 baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot; bar2 baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo bar baz&quot;</span><span class="sy0">&gt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;foo bar baz&quot;</span><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>p <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&gt;</span>p <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;bar&quot;</span><span class="sy0">&lt;/</span>p<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>button id<span class="sy0">=</span><span class="st0">&quot;demo-run&quot;</span><span class="sy0">&gt;</span>run<span class="sy0">&lt;/</span>button<span class="sy0">&gt;</span></pre></div><textarea id="syntax-a6695db0b5f646eb4b8d06600b52cb7e-plain"><div class="bar">div class="bar"</div>
<div class="bar-baz">div class="bar-baz"</div>
<div class="bar ">div class="bar "</div>
<div class=" bar ">div class=" bar "</div>
<div class="bar baz">div class=" bar baz"</div>
<div class="bar2 baz">div class=" bar2 baz"</div>
<div class="foo">div class="foo"</div>
<div class="foo" id="bar">div class="foo" id="bar"</div>
<div class="foo bar baz">div class="foo bar baz"</div>
<p class="bar">p class="bar"</p>
<button id="demo-run">run</button></textarea></div><p>The button is used to run the example. The function being called when the button is clicked is assigned by first
  retrieving a <code>Node</code> instance for the button and then using the <code>on</code> method:</p>
<div id="syntax-00c7ffc5213abac57772d1f6bc87482d" class="yui-syntax-highlight"><div class="numbers"><pre class="javascript" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span></div></li><li class="li1"><div class="de1">YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>filter<span class="sy0">:</span><span class="st0">&quot;debug&quot;</span><span class="sy0">,</span> logInclude<span class="sy0">:</span> <span class="br0">&#123;</span>profiler<span class="sy0">:</span><span class="kw2">true</span><span class="sy0">,</span> example<span class="sy0">:</span><span class="kw2">true</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="st0">&quot;node&quot;</span><span class="sy0">,</span> <span class="st0">&quot;profiler&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw2">function</span> <span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">    Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#demo-run'</span><span class="br0">&#41;</span>.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">'click'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li2"><div class="de2">        Y.<span class="me1">Profiler</span>.<span class="me1">registerObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.Node&quot;</span><span class="sy0">,</span> Y.<span class="me1">Node</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        Y.<span class="me1">Profiler</span>.<span class="me1">registerObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.DOM&quot;</span><span class="sy0">,</span> Y.<span class="me1">DOM</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> results <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">all</span><span class="br0">&#40;</span><span class="st0">'.bar'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        results.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&quot;newclass&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> report <span class="sy0">=</span> Y.<span class="me1">Profiler</span>.<span class="me1">getFullReport</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            <span class="kw1">return</span> data.<span class="me1">calls</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li2"><div class="de2">        Y.<span class="me1">Profiler</span>.<span class="me1">unregisterObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.Node&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        Y.<span class="me1">Profiler</span>.<span class="me1">unregisterObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.DOM&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">        <span class="co1">//output results</span></div></li><li class="li1"><div class="de1">        <span class="kw2">var</span> msg <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span></div></li><li class="li2"><div class="de2">        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> func <span class="kw1">in</span> report<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">            msg <span class="sy0">+=</span> <span class="br0">&#40;</span>func <span class="sy0">+</span> <span class="st0">&quot;(): Called &quot;</span> <span class="sy0">+</span> report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">calls</span> <span class="sy0">+</span> <span class="st0">&quot; times. Avg: &quot;</span> <span class="sy0">+</span></div></li><li class="li1"><div class="de1">                report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">avg</span> <span class="sy0">+</span> <span class="st0">&quot;, Min: &quot;</span> <span class="sy0">+</span> report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">min</span> <span class="sy0">+</span> <span class="st0">&quot;, Max: &quot;</span> <span class="sy0">+</span> report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">max</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;</span></div></li><li class="li1"><div class="de1"><span class="st0">&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">        <span class="br0">&#125;</span></div></li><li class="li2"><div class="de2">        <span class="kw3">alert</span><span class="br0">&#40;</span>msg<span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span></div></li></ol></pre></div><div class="nonumbers"><pre class="javascript" style="font-family:monospace;"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span>
YUI<span class="br0">&#40;</span><span class="br0">&#123;</span>filter<span class="sy0">:</span><span class="st0">&quot;debug&quot;</span><span class="sy0">,</span> logInclude<span class="sy0">:</span> <span class="br0">&#123;</span>profiler<span class="sy0">:</span><span class="kw2">true</span><span class="sy0">,</span> example<span class="sy0">:</span><span class="kw2">true</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="kw2">use</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="st0">&quot;node&quot;</span><span class="sy0">,</span> <span class="st0">&quot;profiler&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw2">function</span> <span class="br0">&#40;</span>Y<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
    Y.<span class="me1">Node</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'#demo-run'</span><span class="br0">&#41;</span>.<span class="me1">on</span><span class="br0">&#40;</span><span class="st0">'click'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
        Y.<span class="me1">Profiler</span>.<span class="me1">registerObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.Node&quot;</span><span class="sy0">,</span> Y.<span class="me1">Node</span><span class="br0">&#41;</span><span class="sy0">;</span>
        Y.<span class="me1">Profiler</span>.<span class="me1">registerObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.DOM&quot;</span><span class="sy0">,</span> Y.<span class="me1">DOM</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="kw2">var</span> results <span class="sy0">=</span> Y.<span class="me1">Node</span>.<span class="me1">all</span><span class="br0">&#40;</span><span class="st0">'.bar'</span><span class="br0">&#41;</span><span class="sy0">;</span>
        results.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">&quot;newclass&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="kw2">var</span> report <span class="sy0">=</span> Y.<span class="me1">Profiler</span>.<span class="me1">getFullReport</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>data<span class="br0">&#41;</span><span class="br0">&#123;</span>
            <span class="kw1">return</span> data.<span class="me1">calls</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="sy0">;</span>
        <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        Y.<span class="me1">Profiler</span>.<span class="me1">unregisterObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.Node&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        Y.<span class="me1">Profiler</span>.<span class="me1">unregisterObject</span><span class="br0">&#40;</span><span class="st0">&quot;Y.DOM&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        <span class="co1">//output results</span>
        <span class="kw2">var</span> msg <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span>
        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> func <span class="kw1">in</span> report<span class="br0">&#41;</span><span class="br0">&#123;</span>
            msg <span class="sy0">+=</span> <span class="br0">&#40;</span>func <span class="sy0">+</span> <span class="st0">&quot;(): Called &quot;</span> <span class="sy0">+</span> report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">calls</span> <span class="sy0">+</span> <span class="st0">&quot; times. Avg: &quot;</span> <span class="sy0">+</span>
                report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">avg</span> <span class="sy0">+</span> <span class="st0">&quot;, Min: &quot;</span> <span class="sy0">+</span> report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">min</span> <span class="sy0">+</span> <span class="st0">&quot;, Max: &quot;</span> <span class="sy0">+</span> report<span class="br0">&#91;</span>func<span class="br0">&#93;</span>.<span class="me1">max</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot;
&quot;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
        <span class="kw3">alert</span><span class="br0">&#40;</span>msg<span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span></pre></div><textarea id="syntax-00c7ffc5213abac57772d1f6bc87482d-plain"><script type="text/javascript">
YUI({filter:"debug", logInclude: {profiler:true, example:true}}).use(("node", "profiler"), function (Y) {

    Y.Node.get('#demo-run').on('click', function(){
        Y.Profiler.registerObject("Y.Node", Y.Node);
        Y.Profiler.registerObject("Y.DOM", Y.DOM);

        var results = Y.Node.all('.bar');
        results.addClass("newclass");

        var report = Y.Profiler.getFullReport(function(data){
            return data.calls > 0;
        });

        Y.Profiler.unregisterObject("Y.Node");
        Y.Profiler.unregisterObject("Y.DOM");

        //output results
        var msg = "";
        for (var func in report){
            msg += (func + "(): Called " + report[func].calls + " times. Avg: " +
                report[func].avg + ", Min: " + report[func].min + ", Max: " + report[func].max) + "
";
        }
        alert(msg);
    });
});
</script></textarea></div><p>The function begins be registering <code>Y.DOM</code> and <code>Y.Node</code> with the Profiler. Note that since these objects don't
  exist in the global scope, the second argument is necessary for <code>registerObject()</code>. Then, the <code>Y.Node.all()</code>
  method is called to retrieve nodes for each element with a class of <code>bar</code>. The result of this operation is a <code>NodeList</code>
  object, on which the <code>addClass()</code> method is called. After that, the full report is returned and the objects are unregistered. The last
  step is to output all of the information that was collected. Even though there's only two methods called explicitly in this example,
  the profiled data indicates that several other methods on <code>Y.DOM</code> and <code>Y.Node</code> were called internally to accomplish the
  tasks.</p>				</div>
				<div class="yui-u sidebar">
					
				
					<div id="examples" class="mod box4">
                        <div class="hd">
						<h4>
    Profiler Examples:</h4>
                        </div>
						<div class="bd">
							<ul>
								<li><a href='../profiler/profiler-simple-example.html'>Simple Profiling Example</a></li><li class='selected'><a href='../profiler/profiler-object-example.html'>Object Profiling Example</a></li>							</ul>
						</div>
					</div>
					
					<div class="mod box4">
                        <div class="hd">
						<h4>More Profiler Resources:</h4>
                        </div>
                        <div class="bd">
						<ul>
							<!-- <li><a href="http://developer.yahoo.com/yui/profiler/">User's Guide</a> (external)</li> -->
<li><a href="../../api/module_profiler.html">API Documentation</a></li></ul>
                        </div>
					</div>
			  </div>
		</div>
		
		</div>
	</div>


<div class="yui-b toc3" id="tocWrapper">
<!-- TABLE OF CONTENTS -->
<div id="toc">
	
<ul>
<li class="sect first">YUI 3 Resources</li><li class="item"><a title="YUI 3 -- Yahoo! User Interface (YUI) Library" href="http://developer.yahoo.com/yui/3/">YUI 3 Web Site</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">YUI 3 Examples</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../api/">YUI 3 API Docs</a></li><li class="item"><a title="YUI 3 Dependency Configurator -- configure your custom YUI implementation" href="http://developer.yahoo.com/yui/3/configurator/index.html">YUI 3 Dependency Configurator</a></li><li class="item"><a title="The YUI 3 Forum on YUILibrary.com" href="http://yuilibrary.com/forum/viewforum.php?f=15">YUI 3 Forums (external)</a></li><li class="item"><a title="Found a bug or a missing feature? Let us know on YUILibrary.com." href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License</a></li><li class="item"><a title="Download and fork the YUI project on GitHub" href="http://github.com/yui">YUI on Github</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUI Blog (external)</a></li><li class="sect">YUI 3 Core - Examples</li><li class="item"><a title="YUI Global Object - Functional Examples" href="../../examples/yui/index.html">YUI Global Object</a></li><li class="item"><a title="Event - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="Node - Functional Examples" href="../../examples/node/index.html">Node</a></li><li class="sect">YUI 3 Component Infrastructure - Examples</li><li class="item"><a title="Attribute - Functional Examples" href="../../examples/attribute/index.html">Attribute</a></li><li class="item"><a title="Plugin - Functional Examples" href="../../examples/plugin/index.html">Plugin</a></li><li class="item"><a title="Widget - Functional Examples" href="../../examples/widget/index.html">Widget</a></li><li class="sect">YUI 3 Utilities - Examples</li><li class="item"><a title="Animation - Functional Examples" href="../../examples/anim/index.html">Animation</a></li><li class="item"><a title="AsyncQueue - Functional Examples" href="../../examples/async-queue/index.html">AsyncQueue</a></li><li class="item"><a title="Browser History - Functional Examples" href="../../examples/history/index.html">Browser History</a></li><li class="item"><a title="Cache - Functional Examples" href="../../examples/cache/index.html">Cache</a></li><li class="item"><a title="Cookie - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="DataSchema - Functional Examples" href="../../examples/dataschema/index.html">DataSchema <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataSource - Functional Examples" href="../../examples/datasource/index.html">DataSource <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="DataType - Functional Examples" href="../../examples/datatype/index.html">DataType <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Drag &amp; Drop - Functional Examples" href="../../examples/dd/index.html">Drag &amp; Drop</a></li><li class="item"><a title="Get - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="ImageLoader - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="Internationalization - Functional Examples" href="../../examples/intl/index.html">Internationalization <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="IO - Functional Examples" href="../../examples/io/index.html">IO</a></li><li class="item"><a title="JSON (JavaScript Object Notation) - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="Stylesheet - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="sect">YUI 3 Widgets - Examples</li><li class="item"><a title="Overlay - Functional Examples" href="../../examples/overlay/index.html">Overlay <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Slider - Functional Examples" href="../../examples/slider/index.html">Slider <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Tabview - Functional Examples" href="../../examples/tabview/index.html">Tabview <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 Node Plugins - Examples</li><li class="item"><a title="FocusManager Node Plugin - Functional Examples" href="../../examples/node-focusmanager/index.html">FocusManager Node Plugin <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="MenuNav Node Plugin - Functional Examples" href="../../examples/node-menunav/index.html">MenuNav Node Plugin <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="sect">YUI 3 CSS - Examples</li><li class="item"><a title="YUI CSS Reset - Functional Examples" href="../../examples/cssreset/index.html">CSS Reset</a></li><li class="item"><a title="YUI Fonts - Functional Examples" href="../../examples/cssfonts/index.html">CSS Fonts</a></li><li class="item"><a title="YUI Base - Functional Examples" href="../../examples/cssbase/index.html">CSS Base</a></li><li class="sect">YUI 3 Developer Tools - Examples</li><li class="item"><a title="Console - Functional Examples" href="../../examples/console/index.html">Console <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="item"><a title="Console Filters Plugin- Functional Examples" href="../../examples/console-filters/index.html">Plugin.ConsoleFilters <img alt='beta' src='http://l.yimg.com/a/i/not/beta_1.gif'></a></li><li class="selected "><a title="Profiler - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="Test - Functional Examples" href="../../examples/test/index.html">Test</a></li><li class="sect">Other Useful YUI 3 Resources</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li></ul>
</div>
</div>
	</div><!--closes bd-->

	<div id="ft">
        <p class="first">Copyright &copy; 2010 Yahoo! Inc. All rights reserved.</p>
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
	</div>
</div>
<script language="javascript"> 
var yuiConfig = {filter:"debug", logInclude: {profiler:true, example:true}};
</script>
<script src="../../assets/syntax.js"></script>
<script src="../../assets/dpSyntaxHighlighter.js"></script>
<script language="javascript"> 
dp.SyntaxHighlighter.HighlightAll('code'); 
</script>
</body>
</html>
